MeridionalDistance Function

private function MeridionalDistance(lat, a, e) result(M)

Compute the distance in meters along a meridian from equator to given latitude.

References:

Snyder, J.P, (1987). Map Projections - A working manual, U.S. Geological Survey Professional Paper 1395.

Arguments

Type IntentOptional Attributes Name
real(kind=float), intent(in) :: lat

latitude in [radians]

real(kind=float), intent(in) :: a

semimajor axis [m]

real(kind=float), intent(in) :: e

exentricity

Return Value real(kind=float)

meridional distance [m]


Source Code

FUNCTION MeridionalDistance &
!
(lat, a, e) &
!
RESULT (M)

IMPLICIT NONE

!Arguments with intent(in):
REAL (KIND = float), INTENT(IN) :: lat !!latitude in [radians]
REAL (KIND = float), INTENT(IN) :: a !! semimajor axis [m]
REAL (KIND = float), INTENT(IN) :: e !! exentricity

!Local variables:
REAL (KIND = float) :: M !!meridional distance [m]
!------------end of declaration------------------------------------------------
M = a * ( ( 1. - e**2. / 4. - 3 * e**4. / 64. - 5 * e**6. / 256. ) * lat - &
    ( 3 * e**2. / 8. + 3 * e**4. / 32. + 45 * e**6. / 1024. ) * SIN(2. * lat) + & 
    ( 15. * e**4. / 256. + 45. * e**6. / 1024. ) * SIN(4. * lat ) - &
    ( 35. * e**6. / 3072. ) * SIN(6. * lat) )

END FUNCTION MeridionalDistance